package vg.services.user_interface_manager.interfaces;

import javax.swing.Icon;
import javax.swing.JComponent;

/**
 * This interface determines methods for all panels in user interface.
 *
 * @author Timur Zolotuhin (e-mail: tzolotuhin@gmail.com)
 */
public interface IUserInterfacePanel {
	/**
	 * This method adds new tab.
	 * @param element - element will be displayed in this tab.
	 */
	public void addTab(AUserInterfaceElement element);

	/**
	 * This method adds new tab.
	 * @param title - title of this tab.
	 * @param element - element will be displayed in this tab.
	 * @param icon - icon for this tab.
	 */
	public void addTab(String title, JComponent element, Icon icon);

	/**
	 * This method sets main tab. Other tab will not be displayed.
	 * @param element - element will be displayed in this tab.
	 */
	public void setMainTab(AUserInterfaceElement element);

	/**
	 * This method sets main tab. Other tab will not be displayed.
	 * @param title - title of this tab.
	 * @param element - element will be displayed in this tab.
	 * @param icon - icon for this tab.
	 */	public void setMainTab(String title, JComponent element, Icon icon);
	/**
	 * This method closes current tab.
	 */
	public void closeCurrTab();
}
